import os
from core.logger import get_backend_logger

logger = get_backend_logger()

def current_file_directories():
    # 获取项目根目录
    current_folder = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    return current_folder

def get_latest_cache_folder():
    """
    获取cache文件夹下最新添加的文件夹路径
    """
    project_root = current_file_directories()
    cache_dir = os.path.join(project_root, "cache")
    
    if not os.path.exists(cache_dir):
        return None
    
    # 获取所有子文件夹及其创建时间
    folders = []
    for item in os.listdir(cache_dir):
        item_path = os.path.join(cache_dir, item)
        if os.path.isdir(item_path):
            folders.append((item_path, os.path.getctime(item_path)))
    
    # 按创建时间排序，返回最新的
    if folders:
        folders.sort(key=lambda x: x[1], reverse=True)
        return folders[0][0]
    
    return None


def get_latest_draft_file():
    """
    获取cache文件夹下最新添加文件夹中剧情摘要文件的路径
    """
    latest_folder = get_latest_cache_folder()
    
    if latest_folder:
        draft_folder = os.path.join(latest_folder, "剧情摘要")
        if os.path.exists(draft_folder):
            return draft_folder
    
    return None


def get_all_draft_files():
    """
    获取cache文件夹下最新添加文件夹中剧情摘要文件夹内所有.txt文件的路径列表，按文件名字母顺序排序
    """
    latest_draft_folder = get_latest_draft_file()
    
    if latest_draft_folder and os.path.exists(latest_draft_folder):
        # 获取文件夹内所有.txt文件
        files = []
        for file_name in os.listdir(latest_draft_folder):
            # 只添加.txt后缀的文件
            if file_name.endswith('.txt'):
                file_path = os.path.join(latest_draft_folder, file_name)
                # 确保是文件而不是文件夹
                if os.path.isfile(file_path):
                    files.append(file_path)
        
        # 按文件名排序
        files.sort()
        return files
    
    return []